잠시만 기다려 주세요

     '이태원 150명 넘게 죽은 핼러윈 참사.. 오세훈 탄핵.. 윤석열 탄핵.... 행안부 장관 이상민은 사람이냐... 말만 하면 책임 회피..'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1054)  |  추천 및 재미 (150)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (582)  |  끄적거림 (127)  |  문예 창작 (702)  |  바람 따라 (69)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    postgresql

postgresql - postgresql sequence 시퀀스 auto_increment 사용하기. 추가하기
이 름 : 바다아이   |   조회수 : 9666         짧은 주소 : https://www.bada-ie.com/su/?111591780721
mysql, mariadb 같은 경우 테이블 만들 때... 해당 필드 옵션에 auto_increment 를 설정해 놓으면
자동으로 알아서 증가되게 됩니다.
그러나 postgresql 같은 경우 수작업으로 추가해 주시고 해당 필드에 연결해 주셔야 합니다.
인덱스, 프라이머리키, 외래키 등등... postgresql 은 수동입니다. -.-;
pg_admin 관리툴에서 보면 테이블 스키마 부분 쪽에 테이블, 시퀀스, 인덱스  등등 따로 되어 있습니다.

추가할 시퀀스 이름을 aaa_uid_seq 라고 해 보고
uid 란 필드에 연결한다고 가정한다면....

CREATE SEQUENCE public.aaa_uid_seq
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE public.aaa_uid_seq
  OWNER TO 디비유저;

위와 같이 시퀀스를 추가해 줍니다. 이제 사용할 준비는 끝났습니다.
사용을 해 보면 uid 란 필드가 증가해야 되기 때문에

nextval('aaa_uid_seq'::regclass)

위 값을 필드의 default 값에 넣어놓습니다. 그럼 빈값이 오면 위에 것이 실행되면서
시퀀스를 이용해 자동 증가를 시켜 값을 넣어놓게 됩니다.
주의 하실 점은 mysql, mariadb 는

(uid, 필드명) values ('', 필드값)

요런식의 쿼리가 에러없이 실행되지만 postgresql 에서는 uid 값을 생략하셔야 합니다.

(필드명) values (필드값)

마지막으로 이제 uid 란 필드를 시퀀스에 연결해 놓아야 합니다.

ALTER SEQUENCE aaa_uid_seq OWNED BY 테이블이름.필드명;

위에 것을 안 해 놓으면

TRUNCATE 테이블이름 RESTART IDENTITY;

위와 같이 테이블을 비울 때 다시 시퀀스를 1부터 시작해야 하는데
연결을 안 해 놓으면 1부터가 안됩니다. 리셋이 안되는 거죠...

대략 흐름은 이러네요..
postgresql 이 약간 수작업이 많습니다. 뭐 이유가 있어서 그렇게 만들었겠죠...
admin 툴에서 테이블 생성이나 시퀀스 등등 생성시에는 소유 개념 부분을 주의를 많이 해 주셔야 합니다.
테이블이 누구꺼인가.. 시퀀스가 어디 필드가 주인이냐. 등등...
mysql, mariadb 는 그냥 해당 디비에서 작업하면 전부 그 디비가 주인인 것으로 보지만
postgresql 은 소유 부분을 잘 보셔야 합니다.
 
| |





      1 page / 2 page
번 호 카테고리 제 목 이름 조회수
45 postgresql postgresql ... postgresql 14 .. postgresql.conf port 5432 .. 바다아이 676
44 postgresql , count(*) .... 바다아이 6855
43 postgresql How to do an update + join in PostgreSQL?, 바다아이 6086
42 postgresql sequence(퀀) 바다아이 7718
41 postgresql , , , index create, , 바다아이 8100
40 postgresql postgresql log_timezone .... 바다아이 6504
39 postgresql postgresql SEQUENCE reset .... 바다아이 8340
38 postgresql [PostgreSql] WITH , , Operator 바다아이 7730
37 postgresql postgresql for, foreach , 바다아이 9285
36 postgresql postgresql , , into ... 바다아이 9282
35 postgresql postgresql PL/pgSQL - SQL Procedural Language, , 바다아이 10698
34 postgresql postgresql ... .. , , 바다아이 11711
33 postgresql postgresql CSV export/import 바다아이 8516
32 postgresql postgresql tablespace , .... 바다아이 12838
31 postgresql postgresql 10 partitioning, ... , ... 바다아이 9255
30 postgresql Using PostgreSQL Arrays, ... ... 바다아이 9222
29 postgresql PostgreSQL (TRIGGER) (function) 바다아이 8984
28 postgresql Optimize and Improve PostgreSQL Performance with VACUUM, ANALYZE, and REINDEX 바다아이 9633
27 postgresql postgresql tuple . vacuumdb .. , . 바다아이 9031
26 postgresql postgresql , .. 바다아이 9226
25 postgresql postgresql , size, 바다아이 11223
24 postgresql postgresql , , .... 바다아이 8272
23 postgresql PostgreSQL Replication, , , master, slave 바다아이 10772
22 postgresql postgresql case 바다아이 8139
21 postgresql postgresql with 바다아이 8576
20 postgresql postgresql , , string 바다아이 11482
19 postgresql Postgresql partitioning table , , , 바다아이 9075
18 postgresql PostgreSQL 바다아이 10564
17 postgresql postgresql vacuumdb, psql, pg_dump password crontab , pgpass 바다아이 10248
현재글 postgresql postgresql sequence 퀀 auto_increment . 바다아이 9667
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.05857
to webmaster... gogo sea. gogo sea.